import numpy as np


def vector_opt(v1, v2):
    # 向量加法
    sum = v1 + v2
    # 向量乘积
    product = v1 * v2
    # 向量 点乘/内积
    dot = np.dot(v1, v2)
    # 向量 叉乘
    if len(v1) == 2 and len(v2) == 2:
        exten_v1 = np.append(v1, 0)
        exten_v2 = np.append(v2, 0)
        cross = np.cross(exten_v1, exten_v2)
    else:
        cross = np.cross(v1, v2)
    # 向量 外积
    outer = np.outer(v1, v2)
    print(f"向量和   v1 + v2 = {sum}")
    print(f"向量乘积 v1 * v2 = {product}")
    print(f"向量点乘 v1 . v2 = {dot}")
    print(f"向量叉乘 v1  v2 = {cross}")
    print(f"向量外积 v1  v2 = {outer}")


if __name__ == "__main__":
    # 二维向量
    v1 = np.array([1, 2])
    v2 = np.array([2, 3])

    # 3维向量
    v3 = np.array([1, 2, 3])
    v4 = np.array([2, 3, -4])

    vector_opt(v1, v2)
    vector_opt(v3, v4)
